Proyecto de INF 354

Brayan Dennis Aguilar Aparicio

Predicción de la insuficiencia cardíaca

Las enfermedades cardiovasculares (ECV) son la causa número uno de muerte a nivel mundial, tomando un estimado de 17.9 millones de vidas cada año, lo que representa el 31% de todas las muertes en el mundo. La insuficiencia cardíaca es un evento común causado por las ECV y este conjunto de datos contiene 12 características que pueden utilizarse para predecir la mortalidad por insuficiencia cardíaca.

La mayoría de las enfermedades cardiovasculares pueden prevenirse abordando los factores de riesgo del comportamiento, como el consumo de tabaco, la dieta poco saludable y la obesidad, la inactividad física y el consumo nocivo de alcohol, mediante estrategias que abarquen a toda la población.

Las personas con enfermedades cardiovasculares o que corren un alto riesgo cardiovascular (debido a la presencia de uno o más factores de riesgo como la hipertensión, la diabetes, la hiperlipidemia o una enfermedad ya establecida) necesitan una detección y gestión tempranas en las que un modelo de aprendizaje automático puede ser de gran ayuda.

Introducción

Para esto haremos uso de tres modelos de aprendizaje supervisado: Arbol de decision, Red Neuronal y Regresion Logistica, para poder predecir las muertes a causa de una insuficiencia cardiaca y se compara los resultados de los tres modelos para ver cual es la mejor opcion para este problema.

Columnas del Dataset

Para esto haermos uso del siguiente dataset Heart Failure Prediction de Kaglee el cual contiene las siguiente columnas en donde la columna 13 es el target para los modelos

  1. Edad: edad
  2. Anemia: Disminución de los glóbulos rojos o de la hemoglobina (boolean)
  3. creatinine_phosphokinase El nivel de la enzima CPK ( creatina-fosfocinasa)en la sangre (mcg/L)
  4. diabetes: Si el paciente tiene diabetes (boolean)
  5. ejection_fraction: Porcentaje de sangre que sale del corazón en cada contracción (porcentaje)
  6. high_blood_pressure: Si el paciente tiene hipertensión (boolean)
  7. platelets: Las plaquetas en la sangre (kiloplatelets/mL)
  8. serum_creatinine: El nivel de suero de creatinina en la sangre (mg/dL)
  9. serum_sodium: El nivel de suero de sodio en la sangre (mEq/L)
  10. sex: Mujer u hombre (boolean)
  11. smoking: si el paciente fuma o no (boolean)
  12. time: Período de seguimiento (días)
  13. DEATH_EVENT: Si el paciente falleció durante el período de seguimiento (boolean)

Importamos las librerias

Importamos los datos con pandas y damos una pequeña vista a los datos

Verificamos si existe valores nulos

Hacemos una descripcion de los datos con Pandas

Graficamos los datos

Para asi poder ver que columnas nos puedan servir para hacer la prediccion

Graficamos las muertes por edad, como se puede ver mientras mas mayores hay mas muertes tambien que la edad menor se encuentra entre 38-42

Grafico del nivel enzima CPK en la sangre por muertes

Grafico del porcentaje de sangre que sale del corazón en cada contracción vs si muerieron o no

Grafico de la cantidad de plaquetas en la sangre vs si muerieron o no

Grafico de el nivel de suero de creatinina en la sangre vs si murieron o no

Grafico de el nivel de suero de sodio en la sangre vs si murieron o no

Grafico de tiempo de seguimiento del paciente vs la muerte del mismo

Grafico de cuantas personas que murieron tenian diabetes

Grafico de cuantas personas que murieron tenian anemias

Grafico de cuantas personas que murieron tenian hipertension

Grafico de cuantas personas que murieron fumaban

Eleccion de columnas

Luego de revisar los graficos y la teoria de las columas se llego a la conclusion de que Fumar,Anemia, Hipertension y Diabetes ya que no ayudan a determinar si una persona muere por insuficiencia cardiaca. Por los tanto se usaran las demas columnas para la los modelos

Antes vamos hacer un preprocesamiento de los datos de X para esto vamos ha usar el StandarScaler transforma los datos de tal manera que tiene una media de 0 y una desviación estándar de 1. En resumen, estandariza los datos. Es más útil en clasificación que en regresión

Ahora vamos definir la funcion para dividir los datos en donde tendra 10 splits y 20% para test

Decision Tree Classifier

El modelo de árbol de decisión es un algoritmo de aprendizaje supervizado utilizado para clasificación y regresión, El objetivo es crear un modelo que prediga el resultado de una variable apartir de unas reglas de decisión simples que surgen a partir de las características de los datos.

Datos de precision del arbol

Regresion logistica

La Regresión Logística es un método estadístico para predecir clases binarias. El resultado o variable objetivo es de naturaleza dicotómica. Dicotómica significa que solo hay dos clases posibles. Por ejemplo, se puede utilizar para problemas de detección de cáncer o calcular la probabilidad de que ocurra un evento.

Red Neuronal

Las redes neuronales son una de las familias de algoritmos de ML que más expectación despiertan. Se trata de una técnica que se inspira en el funcionamiento de las neuronas de nuestro cerebro. Se basan en una idea sencilla: dados unos parámetros hay una forma de combinarlos para predecir un cierto resultado

Conclusiones

El arbol de Desicion es la mejor opcion con un 90% de precision para poder predecir la insuficiencia cardiaca, en tanto en segundo lugar esta la red neuronal con un 88% cabe recalcar que se uso una red neuronal sin tantos parametros de ajuste, si pudiera ajustar mas la red neuronal puede llegar a un valor mas alto y por ultimo esta la regresion logistica con 87% muy cerca a la red neurnal.